#include <stdio.h>

#define NUM_ELEMENT 9

// 声明函数inv
/*
- 函数原型：

  1. 函数名：inv。
  2. 函数返回值：函数需要直接修改数组`a`的内容，无需返回值。
  3. 函数参数：以数组作为函数参数，在函数中直接修改数组内容。
*/
extern void inv(int *a, long len);

int main(void)
{
    /* 定义数组arr */
    int arr[NUM_ELEMENT] = {0};
    int i = 0;
    /* 读取数组元素*/
    for (i = 0; i < NUM_ELEMENT; i++)
    {
        scanf("%d", &arr[i]);
    }
    /* 调用inv函数，传入数组首地址和长度 */
    inv(arr, NUM_ELEMENT);
    /* 打印修改后的数组元素 */
    for(i = 0; i < NUM_ELEMENT; i++)
        printf("%d ", arr[i]);
    printf("\n");
}

void inv(int *a, long len)
{
    /*
    使用for循环遍历`a[i]`，循环起始状态`i = 0`，循环条件：`i < (n-1)/2.0`。
    */
    long i = 0;
    for(i = 0; (double)i < (len - 1) / 2.0; i++)
    {
        /* 循环体中交换`a[i]`和`a[n-1-i]`。*/
        int tmp = a[i];
        a[i] = a[len - 1 - i];
        a[len - 1 - i] = tmp;
    }
}